export function setFontSize(res) {
  const clientWidth = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth
  if (!clientWidth) return
  let fontSize = clientWidth / 1920
  return res * fontSize
}

export function px2rem(px) {
  if (/%/gi.test(px)) {
    // 有百分号%，特殊处理，表述pc是一个有百分号的数，比如：90%
    return px
  } else {
    return parseFloat(px) / 192 + 'rem' // 这里的37.5，和rootValue值对应
  }
}
export function getTimeWeekMouth(val) {
  let startTime, endTime
  let now = new Date() //当前日期
  var nowDayOfWeek = now.getDay() == 0 ? 6 : now.getDay() - 1 //今天本周的第几天
  var nowDay = now.getDate() //当前日
  let nowMonth = now.getMonth() //当前月
  let nowYear = now.getFullYear() //当前年
  let jd = Math.ceil((nowMonth + 1) / 3)
  let toDay = new Date(new Date().toLocaleDateString()).getTime()
  let filtertype = val
  if (['近七天', '近7天', '7天'].includes(val)) {
    filtertype = '7'
  } else if (['近十五天', '近15天', '15天'].includes(val)) {
    filtertype = '15'
  } else if (['近三十天', '近30天', '30天'].includes(val)) {
    filtertype = '30'
  }
  switch (filtertype) {
    case '上一月':
      startTime = new Date(nowYear, nowMonth - 1, 1)
      endTime = new Date(new Date(nowYear, nowMonth, 1).getTime() - 1000)
      break
    case '7':
      startTime = new Date(toDay - 7 * 3600 * 24 * 1000)
      endTime = new Date(toDay - 1) // new Date(toDay + 24 * 3600 * 1000 - 1);
      break
    case '15':
      startTime = new Date(toDay - 15 * 3600 * 24 * 1000)
      endTime = new Date(toDay - 1) // new Date(toDay + 24 * 3600 * 1000 - 1);
      break
    case '30':
      startTime = new Date(toDay - 30 * 3600 * 24 * 1000)
      endTime = new Date(toDay - 1) // new Date(toDay + 24 * 3600 * 1000 - 1);
      break
    case '本周':
      startTime = new Date(nowYear, nowMonth, nowDay - nowDayOfWeek)
      endTime = new Date(nowYear, nowMonth, nowDay + (6 - nowDayOfWeek))
      break
    case '当月':
      startTime = new Date(nowYear, nowMonth, 1)
      endTime = new Date(nowYear, nowMonth + 1, 0)
      break
    case '当天':
      startTime = new Date(new Date().setHours(0, 0, 0, 0))
      endTime = new Date()
      break
    case '本季度':
      startTime = new Date(nowYear, (jd - 1) * 3, 1)
      endTime = new Date(nowYear, jd * 3, 0)
      break
    case '本年':
      startTime = new Date(nowYear, 0, 1)
      endTime = new Date(nowYear, nowMonth, nowDay)
      break
  }
  // 格式化日期：yyyy-MM-dd
  function formatDate(date) {
    var myyear = date.getFullYear()
    var mymonth = date.getMonth() + 1
    var myweekday = date.getDate()
    if (mymonth < 10) {
      mymonth = '0' + mymonth
    }
    if (myweekday < 10) {
      myweekday = '0' + myweekday
    }
    return myyear + '-' + mymonth + '-' + myweekday + ''
  }
  return [formatDate(startTime) + ' 00:00:00', formatDate(endTime) + ' 23:59:59']
  // return [startTime,endTime]
}

export function getChidlren(data, key, value) {
  let result = null
  let fn = function(d) {
    if (Array.isArray(d)) {
      // 判断是否是数组
      for (let i = 0; i < d.length; i++) {
        const e = d[i]
        if (e[key] === value) {
          // 数据循环每个子项，并且判断子项下边是否有id值
          result = e // 返回的结果等于每一项
          break
        } else if (e.children) {
          fn(e.children) // 递归调用下边的子项
        }
      }
    }
  }
  fn(data) // 调用一下
  return result
}

export async function blobUrlToBase64(blob) {
  return new Promise((resolve, reject) => {
    const xhr = new XMLHttpRequest()
    xhr.responseType = 'blob'
    xhr.onload = function() {
      const recoveredBlob = xhr.response
      const reader = new FileReader()
      reader.onload = function() {
        const blobAsDataUrl = reader.result
        resolve(blobAsDataUrl)
      }
      reader.readAsDataURL(recoveredBlob)
    }
    xhr.open('GET', blob)
    xhr.send()
  })
}
